package com.sky.service.admin;

import com.sky.dto.DishDTO;
import com.sky.dto.DishPageQueryDTO;
import com.sky.entity.Dish;
import com.sky.result.PageResult;
import com.sky.vo.DishVO;

import java.util.List;

public interface DishService {
    /**
     * 新增菜品以及口味
     * @param dishDTO 菜品DTO
     */
    void saveDishWitchFlavor(DishDTO dishDTO);

    /**
     * 根据菜品DTO修改菜品以及口味
     * @param dishDTO 菜品DTO
     */
    void updateDishWithFlavor(DishDTO dishDTO);

    /**
     * 批量删除菜品
     * @param dishIds 菜品id集合
     */
    void deleteBatch(List<Long> dishIds);

    /**
     * 菜品起售停售
     * @param status 菜品状态
     * @param dishId 菜品id
     */
    void startOrStopDish(Integer status,Long dishId);

    /**
     * 分页查询菜品
     * @param dishPageQueryDTO 菜品分页实体类DTO
     * @return 分页数据包
     */
    PageResult pageQueryDish(DishPageQueryDTO dishPageQueryDTO);

    /**
     * 根据菜品id查询菜品
     * @param dishId 菜品id
     * @return 菜品实体类VO
     */
    DishVO getByDishIdWithFlavor(Long dishId);

    /**
     * 根据分类id查询菜品
     * 复用代码
     * @param dish 菜品实体类
     * @return 菜品实体类VO
     */
    List<DishVO> listDishWithFlavor(Dish dish);


}
